# 主要是获取到广告组的配置模板
import sys
sys.path.append("..")   #也可以这样
import random
from base.kuaishou_tools import Kuaishou_tools
from base.base_tools import get_datetime_x_days_ago
from base.base_tools import read_file_data
from base.base_tools import Mymongo
# 这3个是必须要的参数


def 创建广告组(k:Kuaishou_tools,
          campaign_id:int,
          视频数量:int,
          广告组模板查询:dict,
          bid:float,
          标题文件路径:str,
          关键词文件路径:str,
          ):
    #k.更新素材的关联创意数()
    photo_list  = k.获取创意发布素材(sample_size=视频数量)
    with Mymongo() as mongo:
        template_data_all = mongo.db["广告发布模板"].find_one(广告组模板查询,{"_id":0})
        unit_data = k.创建广告组(template_data_all=template_data_all,campaign_id=campaign_id,bid=bid)
        unit_id = unit_data["data"]["unit_id"]
        
    captions = read_file_data(标题文件路径,num=3)
    # 随机获取搜索关键词,从哪里去获取搜索关键词呢?
    kws =  read_file_data(关键词文件路径,num=1000)

    # 给计划在添加一下搜索词,match_type=是短语匹配
    k.add_search_word(campaign_id,unit_id,kws,match_type=2)

    k.创建程序化创意(template_data_all=template_data_all,unit_id=unit_id,package_name=get_datetime_x_days_ago(0),
            captions= captions,
            photo_list = photo_list,
            )
    
def 创建广告计划(account,advertiser_id,视频数量,广告组模板查询,
        bid:float,
          标题文件路径:str,
          关键词文件路径:str,
          计划数 = 2,
          广告组数量 = 3
           ):
    k = Kuaishou_tools(account,advertiser_id)
    k.更新素材的关联创意数()
    # 创建计划
    for i in range(计划数):
        campaign_data = k.add_campaign(ad_type=0)
        campaign_id =campaign_data["data"]["campaign_id"]
        for j in range(广告组数量):
            创建广告组(k=k,
                campaign_id=campaign_id,
                视频数量=视频数量,
                广告组模板查询=广告组模板查询,
                bid = bid,
                标题文件路径=标题文件路径,
                关键词文件路径=关键词文件路径
                )

    
account = 18965123141
advertiser_id = 17041841
广告组模板查询 = {"产品":"素材神器","名称":"安卓01"}
bid = 123,
计划数 = 2,
广告组数量 = 5
视频数量 = 10
标题文件路径 = "../data/素材神器/标题.txt",
关键词文件路径 = "../data/素材神器/关键词.txt",

if __name__ == '__main__':
    创建广告计划(
    account = account,
    advertiser_id = advertiser_id,
    广告组模板查询 = {"产品":"素材神器","名称":"安卓01"},
    bid = bid,
    标题文件路径 = 标题文件路径,
    关键词文件路径 = 关键词文件路径,
    计划数=计划数,
    广告组数量 = 广告组数量,
    视频数量 = 视频数量 ,
    )

